package com.zito.health.controller;

import com.zito.health.common.result.PlatformResult;
import com.zito.health.entity.ItemCapitalExpend;
import com.zito.health.entity.ItemIncharge;
import com.zito.health.service.ItemCapitalExpendService;
import com.zito.health.service.ItemInchargeService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.math.BigDecimal;
import java.util.List;

/**
 * 项目结题资金出
 */
@Slf4j
@RestController
@RequestMapping("/item/capitalExpend")
public class ItemCapitalExpendController {

    @Autowired
    private ItemCapitalExpendService itemCapitalExpendService;

    @PostMapping("/save")
    public PlatformResult save(ItemCapitalExpend item){
        if(item.getId() != null && item.getId() > 0){
            itemCapitalExpendService.update(item);
        }else{
            itemCapitalExpendService.save(item);
        }
        return PlatformResult.success();
    }

    @PostMapping("/update")
    public PlatformResult update(ItemCapitalExpend item){
        itemCapitalExpendService.update(item);
        return PlatformResult.success();
    }

    @PostMapping("/query")
    public PlatformResult query(ItemCapitalExpend item){
        List<ItemCapitalExpend> list = itemCapitalExpendService.query(item);
        ItemCapitalExpend sum = new ItemCapitalExpend();//求和用
        sum.setSubject("经费支出合计");
        sum.setFunds(0.00D);
        sum.setCompany(0.00D);
        sum.setOther(0.00D);
        for(ItemCapitalExpend itemCapitalExpend :list){
            BigDecimal b1 = new BigDecimal(Double.toString(sum.getFunds()));
            BigDecimal b2 = new BigDecimal(Double.toString(itemCapitalExpend.getFunds()));
            sum.setFunds(b1.add(b2).doubleValue());
            BigDecimal b3 = new BigDecimal(Double.toString(sum.getCompany()));
            BigDecimal b4 = new BigDecimal(Double.toString(itemCapitalExpend.getCompany()));
            sum.setCompany(b3.add(b4).doubleValue());
            BigDecimal b5 = new BigDecimal(Double.toString(sum.getOther()));
            BigDecimal b6 = new BigDecimal(Double.toString(itemCapitalExpend.getOther()));
            sum.setOther(b5.add(b6).doubleValue());
        }
        list.add(sum);
        return PlatformResult.success(list);
    }

}
